---
title: "SQL-002: Select a single task"
summary: Retrieve one task row by sequence number via the pk82036_task.task_select stored procedure.
status: draft
owner: SAIF Documentation
last_reviewed: 2026-08-21
library: SAIF.Business.Tasks
reference_type: embedded
---

# SQL-002 Select a single task

Retrieves a single `TASK` row via the Oracle stored procedure `pk82036_task.task_select`, which returns a REF CURSOR.

## Classification

| Field | Value |
| --- | --- |
| **SQL ID** | SQL-002 |
| **Operation type** | Read |
| **Execution method** | Stored procedure |
| **Database** | Oracle |
| **Schema** | `[unqualified]`** |
| **Command type** | StoredProcedure |
| **Business object** | `clsTask` |
| **Criteria property** | `RetrieveSQL` |
| **Lifecycle method** | `BeforeRetrieve` / `AfterRetrieve` |

## Parameters

| Parameter | Direction | Type | Max length | Description |
| --- | --- | --- | --- | --- |
| `:TaskID` | Input | Decimal | N/A | `TASK_SEQ_NUM` of the task to load |
| `recordset` | Output (Cursor) | Oracle `SYS_REFCURSOR` | N/A | Result set consumed as `clsSAIFDataReader` in `AfterRetrieve` (`AddCursorParm("recordset")`) |

## Tables

| Table | Access | Columns used |
| --- | --- | --- |
| [TASK](../database-tables.md#task) | SELECT | All 19 task columns plus the six `Context*` columns mapped by `Fill` |

## Sample SQL

```sql
-- CommandType.StoredProcedure, REF CURSOR output
CALL pk82036_task.task_select(
  :TaskID,
  :recordset)
```

`:recordset` is an Oracle `SYS_REFCURSOR` OUT parameter registered via `DataRequest.AddCursorParm("recordset")` and consumed as a `clsSAIFDataReader` in `AfterRetrieve`. The procedure body resides in the Oracle database and was not retrieved in this environment.**

## Operations and processes
- [Retrieve a single task](../operations/retrieve-single-task.md)

## Sources
- SAIF.Business.Tasks/clsTask.vb
